Method and system for monitoring and tracking browsing activity on handled devices

ABSTRACT

A system and method for method for monitoring and tracking browsing activity of a user on a client device. The method includes generating, based on browsing activity information of a user interacting with at least a page displayed over the client device and page information identifying in part the page displayed over the client device, an exposure map at a page-level view, wherein the exposure map indicates a salience of each area of a page-view respective of the page displayed over the client device and visited by the user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/102,122 filed on Aug. 13, 2018, which is in turn a continuation of,and claims the benefit of, U.S. patent application Ser. No. 13/888,942filed on May 7, 2013, now U.S. Pat. No. 10,063,645, which claims thebenefit of U.S. Provisional Application No. 61/645,331 filed on May 10,2012. The contents of all of the above-referenced applications areincorporated herein by reference.

BACKGROUND

The Internet is a collection of disparate computer systems which use acommon protocol to communicate with each other. A common use of theInternet is to access World Wide Web (web) pages. Web pages aretypically stored on a server and remotely accessed by a client over theInternet using a web browser.

A web site is a collection of web pages. A web site typically includes ahome page and a hierarchical order of follow-on web pages that areaccessible through the home page. The web pages are connected to eachother using hypertext links. The links allow a user to browse web pagesof a web site by selecting the links between the web pages. Distinct Websites may be respectively identified by respective distinctly associatedInternet domain names.

To increase user visitations and revenue, web sites have become verysophisticated. Web sites typically include web pages that provideinformation to users, advertise products or services to users and/orprovide site search functions for users. A problem for web site ownersis how to determine how successful the web site is, for example, whetherthe informational or other needs of users are met and whether the usersare purchasing goods and services advertised on their site.

Programs for analyzing traffic on a network server, such as a webserver, are discussed in the related art. In these prior art systems,the program typically runs on the web server that is being monitored.Data is compiled, and reports are generated on demand or are deliveredfrom time to time via email to display information about web serveractivity, such as the most popular page by number of visits, peak hoursof website activity, most popular entry page, and so on. Alternativelydata is logged on the web server that is being monitored and the logsare transferred to another computer, where they are compiled andanalyzed.

Another technique for collecting web site analytics is by means of aclient side script being embedded in web pages to monitor traffic. Sucha script can collect information and submit it to a central server wherethe information is analyzed and stored. The script runs on a clientdevice that typically collects URLs that a user visits, mouse movement,scrolling of web pages, resizing of browser windows, click events,keyboard use etc. (“per-action” data), the sequence of the visited URLs,and so on. The collected information is typically assembled and sent,“per-page” together with the identification of the client (e.g., an IPaddress) to the central server.

The sequence of visited URLs is typically gathered using a linear modelof web browsing, where a visitor navigates from web page A to web page Bto web page C. However in reality, a user may open several browsers'windows or tabs, and then switch from one to another in any way thevisitor likes. The linear model originated from the linear nature of webserver logs from which traffic analysis evolved. A result of this linearmodel is that the time a visitor spends on a web page is measured as thetime that passes from the load event to the unload event. However, thistime usually does not represent the real time a user has spentinteracting with the page, but rather with the time the page remainedopen.

The conventional monitoring techniques that are based on a client-sizescript were primarily designed to be compatible with web browsersexecuted over personal computers and the like, where the user interactswith the browser using a mouse, and where the browser is active within awindow. However, handled computing devices, such as smart phones, tabletcomputers, electronic readers, and like, have increasingly become verypopular.

There are a number of differences in browsing activity performed in thehandled devices versus personal computers. For example, handled devicesallow users to interact with web pages through a touch screen display.In most cases, the mouse is replaced with a finger whereby theinteraction is merely performed by tapping on the touch screen display.In addition, the content of a web page displayed in a browser executedwithin a handheld device (a “mobile browser”) is adapted to a smallerdisplay area. Thus, the content is displayed differently in the mobilebrowser than in a browser of a personal computer. Further, handleddevices allow the execution of “mobile applications” also known as“APPs”. These mobile applications provide access to web content that isnot accessed through the mobile browsers. Providers of such applicationsare increasingly interested in information about their visitors.

At least due to the above noted differences related to browsing activityon handled devices, conventional client-side monitoring scripts cannotaccurately monitor users' interaction with web pages and mobileapplications.

Therefore, it would be advantageous to provide a solution that overcomesthe deficiencies of conventional techniques for tracking and analyzingusers' browsing activity.

SUMMARY

A summary of several example embodiments of the disclosure follows. Thissummary is provided for the convenience of the reader to provide a basicunderstanding of such embodiments and does not wholly define the breadthof the disclosure. This summary is not an extensive overview of allcontemplated embodiments, and is intended to neither identify key orcritical elements of all embodiments nor to delineate the scope of anyor all aspects. Its sole purpose is to present some concepts of one ormore embodiments in a simplified form as a prelude to the more detaileddescription that is presented later. For convenience, the term “someembodiments” or “certain embodiments” may be used herein to refer to asingle embodiment or multiple embodiments of the disclosure.

Certain embodiments disclosed herein include a method for tracking, at aserver, browsing activity of a user on a client device. The methodcomprises: determining, at the server, based on browsing activityinformation of a user interacting with at least a page displayed on theclient device with a display having a first size, a salience to the userover the course of the browsing activity of each area of a page-view forthe page visited by the user and displayed on the client device, whereinthe browsing activity information includes browsing activity informationfor each of a plurality of different viewports, wherein a viewport is avisible area of the page on the display of the client device at anygiven moment and has a size that is less than the entirety of the page;compensating, at the server, for differences between the layout of thepage at the client device and how the page would appear at at least onedevice differing in at least one respect from the client device bytransforming browsing activity information for at least two of theplurality of different viewports of the page visited by the user into areference exposure map indicating the salience of each area of the pagevisited by the user with respect to a reference layout which is a layoutof the page that is different from at least the page view of the visitedpage for the client device; and sending, from the server, the referenceexposure map for display on an output display.

Certain embodiments disclosed herein also include a non-transitorycomputer readable medium having stored thereon instructions for causinga processing circuitry to execute a process for tracking browsingactivity of a user on a client device, the process comprising:determining, at the server, based on browsing activity information of auser interacting with at least a page displayed on the client devicewith a display having a first size, a salience to the user over thecourse of the browsing activity of each area of a page-view for the pagevisited by the user and displayed on the client device, wherein thebrowsing activity information includes browsing activity information foreach of a plurality of different viewports, wherein a viewport is avisible area of the page on the display of the client device at anygiven moment and has a size that is less than the entirety of the page;compensating, at the server, for differences between the layout of thepage at the client device and how the page would appear at at least onedevice differing in at least one respect from the client device bytransforming browsing activity information for at least two of theplurality of different viewports of the page visited by the user into areference exposure map indicating the salience of each area of the pagevisited by the user with respect to a reference layout which is a layoutof the page that is different from at least the page view of the visitedpage for the client device; and sending, from the server, the referenceexposure map for display on an output display.

Certain embodiments disclosed herein also include a system for trackingbrowsing activity of a user on a client device, comprising: a processingcircuitry; and a memory, the memory containing instructions that, whenexecuted by the processing circuitry, configure the system to:determine, at the server, based on browsing activity information of auser interacting with at least a page displayed on the client devicewith a display having a first size, a salience to the user over thecourse of the browsing activity of each area of a page-view for the pagevisited by the user and displayed on the client device, wherein thebrowsing activity information includes browsing activity information foreach of a plurality of different viewports, wherein a viewport is avisible area of the page on the display of the client device at anygiven moment and has a size that is less than the entirety of the page;compensate, at the server, for differences between the layout of thepage at the client device and how the page would appear at at least onedevice differing in at least one respect from the client device bytransforming browsing activity information for at least two of theplurality of different viewports of the page visited by the user into areference exposure map indicating the salience of each area of the pagevisited by the user with respect to a reference layout which is a layoutof the page that is different from at least the page view of the visitedpage for the client device; and send, from the server, the referenceexposure map for display on an output display.

BRIEF DESCRIPTION OF DRAWINGS

The subject matter that is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The foregoing and other features and advantages ofthe invention will be apparent from the following detailed descriptiontaken in conjunction with the accompanying drawings.

FIG. 1 is a diagram of a network system utilized to describe the variousembodiments disclosed herein.

FIG. 2 is a flowchart of a method for collecting and recording useractivity information as performed by the tracking code according to oneembodiment.

FIG. 3 is a flowchart illustrating a method for tracking activities of auser according to one embodiment.

FIG. 4 is a flowchart illustrating the process for generating theexposure map at pageview level of a user according to one embodiment.

FIGS. 5A, 5B, 5C and 5D illustrate the process of generating a mappedviewport instance.

DETAILED DESCRIPTION

It is important to note that the embodiments disclosed are only examplesof the many advantageous uses of the innovative teachings herein. Ingeneral, statements made in the specification of the present applicationdo not necessarily limit any of the various claimed inventions.Moreover, some statements may apply to some inventive features but notto others. In general, unless otherwise indicated, singular elements maybe in plural and vice versa with no loss of generality. In the drawings,like numerals refer to like parts through several views.

FIG. 1 shows an exemplary and non-limiting diagram of a network system100 utilized to describe the various embodiments of the invention. Thenetwork system 100 includes a client device 101 connected to a network110. To the network 110 are also connected a web server 120 and atracking server 130. The tracking server 130 processes and analyzes useractivity information collected by a tracking code executed in the clientdevice 101.

In one embodiment, the tracking server 130 generates at least anexposure map or report showing areas in a web page, downloaded from theweb server 120, with which a user of the client device 101 mostinteracted and/or viewed. In an embodiment, the exposure map may begraphically presented as a heat map. As will be described below,exposure maps at a pageview level, at a user level, and at a web pagelevel are also generated according to the teachings disclosed herein.

The tracking server 130 may include an interface (not shown in FIG. 1)to receive user activity information representative of activitiesperformed by the user during a visit to a web page, and to receive webpage content information representative of the web page contentdisplayed to the user during the visit. The information received throughthe interface may be compressed. The tracking server 130 also includes aprocessor (not shown in FIG. 1) configured to perform at least the tasksof decompressing the received data and generating at least the exposuremaps and other analytic reports with regard to users' activity. Theprocesses performed by the tracking server 130 are described in greaterdetail below.

The web server 120 can host a web site accessed through a browser 102 ofthe client device 101. The web server 120 may also execute anapplication that provides functionality and contents to a mobileapplication 103 (or APP) executed over the client device 101. Theteachings disclosed herein can be utilized to generate the exposure mapsand other analytics data of either the web pages of a web site displayedover a browser 102 or the content displayed over a mobile application103. Without limiting the scope of the invention and merely for the sakeof simplicity, the description herein below will be made with referenceto the browser 102. It should be further noted that the disclosedteachings are not limited for content retrieved from one server 120 anddisplayed over the client device 101. The browser 102 can render displaycontent retrieved from a plurality of servers, web and/or applicationservers.

The client device 101 may be, but is not limited to, a smart phone, atablet computer, a personal computer, a laptop computer, a netbookcomputer, an electronic reader, and the like. The browser 102 may be anyweb browser, such as Safari®, Firefox®, Internet Explorer®, Chrome®, andthe like. The processor of the client device 101 runs an operatingsystem that may include iOS®, Android®, Unix®, Windows®, and the like.The mobile application 103 may be any application that is executableover the client device 101 and/or an extension of the browser 102. Themobile application 103 is typically downloaded from a central repository140 which may, e.g., AppStore® by Apple Computers®, Google® Play®, andthe like.

In accordance with one embodiment, the user activity information iscollected through a recording process performed by using a trackingcode. The tracking code may be realized as a script, e.g., a JavaScriptembedded in a web page downloaded to the client device 101. The trackingcode may also be embedded in a mobile application downloaded andinstalled in the client the device 101. It should be noted that thetracking code is seamlessly incorporated and executed in the clientdevice 101.

In one embodiment, the tracking code may start its executionautomatically. Alternatively, the code may wait for an instruction fromsome other piece of script in the web page or the mobile application103. The tracking code can decide whether to track activities of a useror not. Such a decision can be responsive to one or more predefinedparameters, a result of a random process, or a combination thereof. Thepredefined parameters may include, for example, a page URL, a referringpage URL, an IP address, a time zone, a browser type, whether the useris a returning user (to the web page and/or to the web site), a specificuser action, and the like.

A user of the client device 101 can visit a web site that includes oneor more web pages. While a web page is displayed in the browser 102, theuser can perform various activities that are monitored by the trackingcode. The interaction of a user within one web page is referred to as a“pageview session.”

According to one embodiment, user activity information, web pageinformation, and client computer related information can be transmittedby the tracking code to the tracking server 130 in different manners.For example, web page information or client computer information (e.g.,a web page identifier, URL, referrer, browser type, platform type,screen resolution and depth, page load start time, initialization starttime, time zone, user identifier, system capabilities (plug-ins,cookies, Flash®)) can be transmitted in a non-compressed (or acompressed) format, even before a transmission of the user activityinformation.

In another embodiment, the tracking code waits for user activities andin response to these activities compresses and buffers the collecteduser activity information, and selectively transmits the compressed useractivity information. The compression and buffering reduces thebandwidth and overhead associated with the transmission of the useractivity information over the network 110. It should be noted thathighly detailed user activity information is acquired, and in order tolimit the overall resources (such as bandwidth) allocated to thetransmission of user activity information, compression and bufferingtechniques can be used when transmitting the collected user activity. Itshould be further noted that reducing the amount of data transmitted tothe tracking server is highly important in cases where the communicationbetween the client device 101 and the tracking sever 130 is establishedover a cellular network. Any data compression techniques may be utilizedto compress the information sent from the client device 101 to thetracking server 130.

According to one embodiment, during the recording of the pageviewsession, the tracking code listens to events generated by the browser102 and determines for each event if the event should be collected or ifit should trigger the collection of data. Specifically, two sets of dataare collected during a pageview session, (i.e., an interaction of a userwithin the web page): the pan/zoom data set and the element data set.The pan/zoom data set relates to pan/zoom operations and the elementdata set relates to elements of the web page.

The pan/zoom data set includes the size of the web page downloaded tothe user device; the size of a visible area on the client device 101 atany given moment (hereinafter “viewport”); the position of each viewport(e.g., position of scroll bars); a time period for which each viewportwas active; and a layout in which the browser 102 attempted to renderthe web page. Using the pan/zoon data set, a rectangular area that wasvisible on the client device 101 at every given moment can bedetermined. The position data can be represented using x, y coordinatesof the viewport. To gather the pan/zoom data set, events including, forexample, load, unload, scroll, resize, mousemove, mousedown, mouseup,click, keydown, keypress, keyup, paste, mouseleave, mouseenter,activate, deactivate, focus, blur, select, selectstart, submit, error,abort, and so on are monitored and recorded by the tracking code. In apreferred embodiment, when the tracking code is executed by a handleddevice having a touch screen display, events, such as orientationchange,touchstart, touchmove, and touchend are recorded and monitored.

Each event is associated with multiple properties or attributes. Theseproperties can be recorded together with the event. For example, mouseevents are transmitted with x, y coordinates of the cursor and the stateof the mouse buttons; keyboard events are transmitted with the key thatwas pressed; scroll events are transmitted with the position of thescroll bars; resize events are transmitted with the new window size;click events are transmitted with the type and URL of the object or linkthat was clicked on, the orientation of the client device, and so on. Inone embodiment, each event is transmitted with the time that itoccurred. The time can be absolute or relative to a known previouslytransferred time, such as load time.

The element data set includes position information about one or moreelements in the web page. For example, the tracking code may collectposition information about a subset of elements that are in the centerof a web page or center of a viewport. The element position informationis collected as the user interacts with the web page. An element can be,for example, a paragraph of text, a link, an image, a button, or anydocument object module (DOM) element of the web page. The positioninformation of an element includes at least one of: identification ofthe element (DOM) path, identification (ID), and so on, the boundingrectangle of the element, and optional identification information of thechildren's elements. For example, if the element is a “form” type itschildren may be “submit button” and “select control.”

It should be noted that for each pageview (i.e., a visit of a web page)information related to a plurality of viewports is collected. A viewportchanges during the pageview, thus multiple viewports can be rendered foreach pageview, typically in response to a pan or zoom operation. Eachviewport being rendered in a pageview is referred to as a “viewportinstance” and starts a viewport instance. The width/height of theviewport instance determines the “zoom” level of the viewport instance.The zoom level determines at which level a given area was viewed. In oneembodiment, the collected and recorded information may be assembled perpageview.

Additional information that may be collected by the tracking code mayinclude checksums and cryptographic hashes of various data in the webpage. Checksums may include, but are not limited to, CRC, CRC32, andFletcher checksum algorithms and the hashes may include, but not arelimited to, SHA-1, and MD4 hash algorithms.

FIG. 2 is an exemplary and non-limiting flowchart 200 of a method forcollecting and recording user activity information as performed by thetracking code according to one embodiment. At S210, the tracking code isdownloaded, over the network 110, to the client device 101. As mentionedabove, the tracking code may be part of the web page content retrievedfrom the web server 120 or may be embedded in the mobile application103. The downloaded tracking code is saved in a tangible memory of theclient device 101 and executed by a processor of the client device 101.In one embodiment, the tracking code is realized as a Java script. Thetracking code may be downloaded during different stages, in parts, or inresponse to the execution of the initially downloaded tracking code.

At S220, it is determined whether to track the activities of the user.As a non-limiting example, the determination is responsive to previousvisits of the user. If it is determined that the tracking should beperformed, execution continues with S230; otherwise, execution ends.

At S230, tracking of the user activity is performed at least byexecuting the tracking code by the client device 101. Specificallyduring a pageview session, at S230 events generated by the browser 102(or mobile application 103) are monitored and recorded. In addition, atleast position information related to the pan/zoon actions and elementsin the web page are gathered into the pan/zoom and element data sets.The contents of these data sets and the events being monitored andrecorded are discussed in detail above. It should be noted that during apageview session many viewport instances are created. The outcome ofS230 is the user activity information per pageview which includes dataabout the plurality of viewport instances rendered during a pageviewsession. The collected and recorded information allows detecting whichrectangular area was visible, at any given moment, on the browser 102during the pageview session.

At S240, it is checked whether a pageview session ended (e.g., whencapturing an unload event). If so, execution continues with S250;otherwise, execution returns to S230. Optionally, at S250, the collecteduser activity information, or portion thereof is compressed and bufferedto reduce the amount of data to be sent to the tracking server 130 overthe network 110. The compression can be performed using any techniquesfor data compression known in the art.

At S260, the user activity information (which may be compressed) is sentto the tracking server 130 over the network 110. In an embodiment, thetransmission of the collected information includes sending an initialmessage to the tracking server 130. The initial message can include, forexample, web page information or client device information as detailedabove. In another embodiment, user activity information can be sent inchunks once a certain amount of data has been collected.

FIG. 3 shows a non-limiting and exemplary flowchart 300 illustrating amethod for tracking activities of a user of a client device according toone embodiment of the invention. The method is performed by the trackingserver 130.

At S310, the user activity information (either compressed oruncompressed) representative of activities performed by the user of theclient device 101 during a pageview session is received. The contents ofreceived user activity information are detailed above. Optionally, atS320, the tracking server 130 receives web page content informationrepresentative of web page content displayed to the user during thevisit. Such information can be received from an external source (e.g.,the web server 120) or the client 101.

Optionally, at S330, the received user activity information, ifcompressed, is decompressed. At S340, at least a pageview-level exposuremap indicating the salience of the content in the pageview visited bythe user of the client 101 is generated. The exposure map is generatedin response to the user activity information and, in certainimplementations, also in response to the web page content informationcollected by the tracking code. The exposure map is generated at apageview level. In one embodiment, the exposure map is rendered as atwo-dimensional heat map. The execution of S340 is described in greaterdetail with reference to FIGS. 4-5 below. An example for a tracking codeand a heat exposure map can be found in U.S. Pat. No. 7,941,525, whichis assigned to the common assignee, and is hereby incorporated byreference for all the useful information it contains.

At S350, the pageview-level exposure map for a webpage visited by a userof the client device 101 is saved in a storage device. The storagedevice may be connected to the tracking server 130 or attached to thenetwork 110. At S360, exposure maps generated for different pageviews(web pages) visited by the user of the client device 101 are aggregatedto generate a visitor-level exposure map. This map represents the timethe user interacted and viewed any area in any visited web page, whetherthe user viewed a certain page area, and/or in how many pageviews aspecific user viewed, and so on.

At S370, visitor-level exposure maps generated for different users areaggregated to generate a page-level exposure map. This map representshow much time a specific area in the pageview was visible by differentusers, if a specific area in the pageview was visible to all users orsome of the users, in how many pageviews was an area visible, how manyusers viewed a specific area in a pageview, and so on. The mapsgenerated at S360 and/or S370 may also be saved in the storage device.The visitor-level exposure map and page-level exposure map can also berendered as a two-dimensional heat map. It should be noted that S360 andS370 are optional.

FIG. 4 shows a non-limiting and exemplary flowchart illustrating theoperation of S340 in more detail. As mentioned above, S340 results in anexposure map generated for a pageview visited by a specific user (e.g.,a user of the client 101) by processing the received user activity data.Specifically, this includes aggregation of viewport instances in such away that the aggregation result would be overlaid on top of anotherpageview of the web page corresponding to the pageview aggregated. Thisis performed in order to compensate for the difference between a visualrepresentation on the client device 101 of the web page, and a visualrepresentation of the web page on another display. That is, the same webpage is typically rendered differently on different devices, and withdifferent layouts. This is due to the fact that different devicesdisplay the same web page differently, because of different types ofdisplay, browsers, operating systems, and so on. Thus, each pageview maybe characterized with a layout being different from the layout of theweb page (hereinafter the “reference layout”). A layout defines how theelements of the web page are positioned and typically includes a list ofelements, their identifiers and their absolute positions. To provide anaccurate exposure map, the aggregation of viewport instances should beperformed invariant to the layout of the pageviews as displayed on theclient devices. Thus, an aggregation of viewport instances from anypageview should be mapped to overlay the reference layout correctly.

With this aim, at S410, a reference layout is created. In oneembodiment, the creation of the reference layout includes rendering, inthe tracking server 130, a web page corresponding to the pageview andinspecting the location of each element in the rendered web page. Theweb page corresponding to the pageview is determined based on the webpage content information collected by the tracking code (e.g., the URLof the web-page viewed by the user). In another embodiment, a web pageis rendered, by a rendering engine, on a device of the user who receivesthe exposure map, and the layout of such web page is sent to thetracking server 130 for report generation. The user, in this case, maybe a system administrator of a web site hosted by the web server 120, acontent manager of the web site hosting the rendered web page, and thelike. The device of such a user is connected to the network 110 and hasa communication channel with the tracking server 130 and the web server120. Alternatively, the reference layout may be received from anexternal source.

At S420, each viewport instance from the pageview layout (i.e., thelayout as displayed over the browser 102) is mapped to the referencelayout. This is performed using the information collected in thepan/zoon and element data sets. In one embodiment, S420 includesdetecting the “mapped intersection area” of an element in the referencelayout corresponding to a matching element in the viewport instance inthe pageview layout. The mapped intersection area is a rectangle createdin the reference layout for each element or combination of elements thatintersects the viewport instance in the pageview layout. An intersectionof an element in the pageview layout with the viewport instance islinearly mapped to result in the “mapped intersection area.” This can beachieved, for example, by applying the information that transforms abounding box of the element in the pageview layout to a bounding box ofthe element in the reference layout.

The result of S420 is one or more rectangles representing the mapping ofall visible areas of known elements in the viewport instance. At S430, aunion operation is performed on all the rectangles produced at S420 tooutput a mapped viewport instance that represents the visible area ofthe viewport instance in the reference layout. At S440, the mappedviewport instance is saved.

At S450, it is checked if all the viewport instances in the pageview aremapped, and if so, execution continues with S460; otherwise, executionreturns to S420 where the mapping of another viewport instance isperformed.

At S460, all mapped viewport instances are aggregated to create theexposure map at the pageview level. In one embodiment, S460 includesaggregating all the rectangles (or any other shape formed due to themapping) of mapped viewport instances using an accumulator. This wouldresult in the entire space of the pageview relative to the referencelayout that was visible to the user. Then, to determine the salience ofthe visible area, the delta time spans of all viewport instancesrespective of the mapped viewports are computed as a weighted sum. Inone embodiment, the weight can be assigned according to the viewportzoom level. For example, a pageview that includes a certain paragraph isexposed in a viewport twice, each time for y seconds. The first time itis zoomed in more than the second time (e.g., 3×). The total pageviewsalience for this paragraph is y+y. However, when assigning a weight tothe viewport zoom levels the pageview salience for this paragraph wouldbe y+3 y. Other functions can be utilized instead of a weighted sum, forexample, a sum or a binary ‘OR’ function.

The exposure map, in one embodiment, is a two-dimensional map ofexposure time values, with each such value indicating the time aspecific area was visible or “exposed”. The exposure map can begraphically rendered as a heat map using these values. In anotherembodiment, the exposure map may be generated as a tabulated reportlisting rectangles (or any other geometric shapes) and their exposuretime values.

As mentioned above, the pageview-level exposure map can be utilized togenerate a visitor-level exposure map and page-level exposure map. Thevisitor-level exposure map is generated by aggregating a plurality ofpageview-level exposure maps generated for a certain user for differentpageviews. Such aggregation can be performed using a sum or a binary ORfunction. The page-level exposure map is generated by aggregating aplurality of visitor-level exposure maps generated for a plurality ofusers. Such aggregation can be performed using a sum or a binary ORfunction. The exposure maps can be sent via the Internet or downloadedfrom a central repository by a user of the tracking entity (e.g., thetracking server 130). Such a user may be, for example, a systemadministrator of a web site hosted by the server, a content manager ofthe web site hosting the rendered web page, and the like.

It should be appreciated by one of ordinary skill that other types ofanalytics reports and/or exposure maps can be generated based on theteachings disclosed herein. Thus, the embodiments disclosed herein arenot limited to the generation of pageview-level, visitor-level, and/orpage-level exposure maps.

FIGS. 5A-5D show a non-limiting example for generating the mappedviewport instance as discussed with reference to S420, S430 above. FIG.5A depicts a pageview layout 501 that includes child-elements 502 and503 of a main page element. A viewport instance 504 illustrates thevisible area. FIG. 5B depicts a reference model 505 that includes childelements 502′ and 503′ corresponding to the elements 502 and 503,respectively, in the pageview layout. FIG. 5C depicts the mapping of theviewport instance 504 (not shown in FIG. 5C) from a pageview layout 501to a reference layout 505. As can be noticed, a rectangle 506 is createdas a “mapped intersection area” for each element 502′ and 503′ that wasvisible in the instance 504. For example, the rectangle 506-1 completelysurrounds the element 503′ as the respective element 503 was completelyincluded in the viewport instance 504 (see FIG. 5A). The rectangle 506-2partially boxes the element 502′ proportionally to the amount theintersection of its corresponding element 502 with the instance 504. Therectangle 506-3 is the portion of a main page element that is includedin the viewport instance 504 after being mapped from the pageview layoutto the reference layout. The mapped visible instance is the spaceenclosed in the union of the rectangles 506-1, 506-2, and 506-3 as shownin FIG. 5D.

The various embodiments disclosed herein may be implemented as hardware,firmware, software, or any combination thereof. Moreover, the softwareis preferably implemented as an application program tangibly embodied ona program storage unit or non-transitory computer readable mediumconsisting of parts, or of certain devices and/or a combination ofdevices. A non-transitory computer readable medium is any computerreadable medium except for a transitory propagating signal. Theapplication program may be uploaded to, and executed by, a machinecomprising any suitable architecture. Preferably, the machine isimplemented on a computer platform having hardware such as one or morecentral processing units (“CPUs”), a memory, and input/outputinterfaces. The computer platform may also include an operating systemand microinstruction code. The various processes and functions describedherein may be either part of the microinstruction code or part of theapplication program, or any combination thereof, which may be executedby a CPU, whether or not such computer or processor is explicitly shown.In addition, various other peripheral units may be connected to thecomputer platform such as an additional data storage unit and a printingunit. Furthermore, a non-transitory computer readable medium is anycomputer readable medium except for a transitory propagating signal.

All examples and conditional language recited herein are intended forpedagogical purposes to aid the reader in understanding the principlesof the invention and the concepts contributed by the inventor tofurthering the art, and are to be construed as being without limitationto such specifically recited examples and conditions. Moreover, allstatements herein reciting principles, aspects, and embodiments of theinvention, as well as specific examples thereof, are intended toencompass both structural and functional equivalents thereof.Additionally, it is intended that such equivalents include bothcurrently known equivalents as well as equivalents developed in thefuture, i.e., any elements developed that perform the same function,regardless of structure.

It should be understood that any reference to an element herein using adesignation such as “first,” “second,” and so forth does not generallylimit the quantity or order of those elements. Rather, thesedesignations are generally used herein as a convenient method ofdistinguishing between two or more elements or instances of an element.Thus, a reference to first and second elements does not mean that onlytwo elements may be employed there or that the first element mustprecede the second element in some manner. Also, unless statedotherwise, a set of elements comprises one or more elements.

As used herein, the phrase “at least one of” followed by a listing ofitems means that any of the listed items can be utilized individually,or any combination of two or more of the listed items can be utilized.For example, if a system is described as including “at least one of A,B, and C,” the system can include A alone; B alone; C alone; 2A; 2B; 2C;3A; A and B in combination; B and C in combination; A and C incombination; A, B, and C in combination; 2A and C in combination; A, 3B,and 2C in combination; and the like.

What is claimed is:
 1. A method for tracking, at a server, browsingactivity of a user on a client device, comprising: determining, by aprocessor of a server, based on browsing activity information of a userinteracting with a page displayed on the client device, a salience tothe user of each area of a page-view for a page, wherein the browsingactivity information includes information associated with a plurality ofviewports, and wherein each viewport of the plurality of viewports is avisible area of the page on a display of the client device at any givenmoment and has a size that is less than an entirety of the page;generating an exposure map at a page level-view based on at least twoviewports of the plurality of viewports, wherein the exposure mapcompensates for differences between a layout of the page on the clientdevice and on at least one other device, and wherein the exposure mapindicates the salience to the user of each area of the page-view for thepage; and providing for display of the exposure map on an output displaythat is separate from the display of the client device, wherein thebrowsing activity information includes a pan/zoom dataset which includespan/zoom operations and information characterizing the at least twoviewports, and wherein generating the exposure map comprises creating areference layout, mapping each viewport of the pan/zoom dataset to thereference layout to create a plurality of intersection areas, theplurality of intersection areas corresponding to rectangles that map allvisible areas of elements in the viewport, performing a union operationon the rectangles to create a mapped viewport, and aggregating allmapped viewports for the viewports of the pan/zoom dataset.
 2. Themethod of claim 1, wherein the browsing activity information furtherincludes an element dataset which includes data related to elements ofthe page.
 3. The method of claim 1, wherein generating the exposure mapcomprises: aggregating the at least two viewports, wherein theaggregating is performed by overlaying each of the at least twoviewports on top of the reference layout so that the resultingaggregation is invariant to the layout of the page on the client deviceand on the at least one other device.
 4. The method of claim 1, whereinthe browsing activity of the client device includes at least oneinteraction of the user with a page of a mobile application installed onthe client device.
 5. The method of claim 1, wherein the browsingactivity of the client device includes at least one interaction of theuser with a web page rendered by a web browser installed on the clientdevice.
 6. The method of claim 1, wherein the layout of the page on theclient device includes at least one visible area of the page.
 7. Themethod of claim 1, wherein the client device comprises a display havinga first size, and wherein the output display has a second size that isdifferent from the first size.
 8. The method of claim 1, wherein theclient device differs from the at least one other device based on a typeof display, display size, type of browser, or type of operating system.9. A non-transitory computer readable medium having stored thereoninstructions for causing a processing circuitry to execute a process fortracking browsing activity of a user on a client device, the process asperformed by a server, comprising: determining, by a processor of theserver, based on browsing activity information of a user interactingwith a page displayed on the client device, a salience to the user ofeach area of a page-view for a page, wherein the browsing activityinformation includes information associated with a plurality ofviewports, and wherein each viewport of the plurality of viewports is avisible area of the page on a display of the client device at any givenmoment and has a size that is less than an entirety of the page;generating an exposure map at a page level-view based on at least twoviewports of the plurality of viewports, wherein the exposure mapcompensates for differences between a layout of the page on the clientdevice and on at least one other device, and wherein the exposure mapindicates the salience to the user of each area of the page-view for thepage; and providing for display of the exposure map on an output displaythat is separate from the display of the client device, wherein thebrowsing activity information includes a pan/zoom dataset which includespan/zoom operations and information characterizing the at least twoviewports, and wherein generating the exposure map comprises creating areference layout, mapping each viewport of the pan/zoom dataset to thereference layout to create a plurality of intersection areas, theplurality of intersection areas corresponding to rectangles that map allvisible areas of elements in the viewport, performing a union operationon the rectangles to create a mapped viewport, and aggregating allmapped viewports for the viewports of the pan/zoom dataset.
 10. A systemfor tracking browsing activity of a user on a client device, comprising:a processing circuitry; and a memory, the memory containing instructionsthat, when executed by the processing circuitry, configure the systemto: determine based on browsing activity information of a userinteracting with a page displayed on the client device, a salience tothe user of each area of a page-view for a page, wherein the browsingactivity information includes information associated with a plurality ofviewports, and wherein each viewport of the plurality of viewports is avisible area of the page on a display of the client device at any givenmoment and has a size that is less than an entirety of the page;generate an exposure map at a page level-view based on at least twoviewports of the plurality of viewports, wherein the exposure mapcompensates for differences between a layout of the page on the clientdevice and on at least one other device, and wherein the exposure mapindicates the salience to the user of each area of the page-view for thepage; and providing for display of the exposure map on an output displaythat is separate from the display of the client device, wherein thebrowsing activity information includes a pan/zoom dataset which includespan/zoom operations and information characterizing the at least twoviewports, and wherein generating the exposure map comprises creating areference layout, mapping each viewport of the pan/zoom dataset to thereference layout to create a plurality of intersection areas, theplurality of intersection areas corresponding to rectangles that map allvisible areas of elements in the viewport, performing a union operationon the rectangles to create a mapped viewport, and aggregating allmapped viewports for the viewports of the pan/zoom dataset.
 11. Thesystem of claim 10, wherein the browsing activity information furtherincludes an element dataset which includes data related to at least oneelement of the page.
 12. The system of claim 10, wherein generating theexposure map comprises: aggregating the at least two viewports, whereinthe aggregating is performed by overlaying each of the at least twoviewports on top of the reference layout so that the resultingaggregation is invariant to the layout of the page on the client deviceand on the at least one other device.
 13. The system of claim 10,wherein the browsing activity of the client device includes at least oneinteraction of the user with a page of a mobile application installed onthe client device.
 14. The system of claim 10, wherein the browsingactivity of the client device includes at least one interaction of theuser with a web page rendered by a web browser installed on the clientdevice.
 15. The system of claim 10, wherein the layout of the page onthe client device includes at least one visible area of the page. 16.The system of claim 10, wherein the client device comprises a displayhaving a first size, and wherein the output display has a second sizethat is different from the first size.
 17. The system of claim 10,wherein the client device differs from the at least one other devicebased on a type of display, display size, type of browser, or type ofoperating system.